package com.cctv.haierstore.product.util;

import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
import org.springframework.web.multipart.MultipartFile;

import java.io.InputStream;
import java.util.Properties;

/**
 * @author huayi
 * @date 2023年07月10日 19:44
 */
public class FtpUtil {
    public static boolean uploadFileFTP(MultipartFile file) {
        boolean result;
        ChannelSftp sftp = null;
        try {
            JSch jsch = new JSch();
            // 获取sshSession  账号-ip-端口
            Session sshSession = jsch.getSession("root", "192.168.56.10", 22);
            // 添加密码
            sshSession.setPassword("123456");
            Properties sshConfig = new Properties();
            // 严格主机密钥检查
            sshConfig.put("StrictHostKeyChecking", "no");
            sshSession.setConfig(sshConfig);
            // 开启sshSession链接
            sshSession.connect(15000);
            // 获取sftp通道
            Channel channel = sshSession.openChannel("sftp");
            // 开启
            channel.connect(15000);
            sftp = (ChannelSftp) channel;
            // 进入到要上传的目录  然后上传文件
            sftp.cd("/mydata/nginx/html" + "/static");
            // sftp put为上传，get为下载，之后会出一篇下载的代码
            InputStream inputStream = file.getInputStream();
            String filename = file.getOriginalFilename();
            sftp.put(inputStream, filename);
            inputStream.close();
            result = true;
        } catch (Exception e) {
            result = false;
            sftp.disconnect();
        } finally {
            if (sftp.isConnected()){
                sftp.disconnect();
            }
        }
        return result;
}
}
